/**
js实现 提取指定url参数的值，
比如url = 'http:// w.com/index.html?name=haha&age=18&six=man&six=man&six=man' 提取获得age的值
 */
//正则匹配的方法
function getUrlParam(url, paramName) {
  const reg = new RegExp(`(^|&)${paramName}=([^&]*)(&|$)`, 'i');
  const res = url.match(reg);
  console.log(res);
  return res ? decodeURIComponent(res[2]) : null;
}
const url = 'http:// w.com/index.html?name=haha&age=18&six=man&six=man&six=man2';
// console.log(getUrlParam(url, 'six'));

//使用URLSearchParams提取指定参数值
/**
相关api:
const params = new URLSearchParams(url.split('?')[1]);
params.get(key) //获取指定参数值
params.getAll(key) //获取指定参数的全部值
params.has(key) //判断是否存在指定参数
params.set(key, value) //设置指定参数值
params.delete(key) //删除指定参数
params.forEach((value, key) => {}) //遍历所有参数
params.toString() //将参数转换为字符串
 */
function getUrlParam(url, paramName) {
  const params = new URLSearchParams(url.split('?')[1]);
  const value = params.getAll(paramName);
  return value.length > 1 ? value : value[0];
}
// console.log(getUrlParam(url, 'age'));

//基于正则获取全部参数的方法改造
function getUrlParam(url, paramName) {
  const values = url.match(/([^?&=]+)=([^?&=]*)/g)
  const res = []
  values.forEach(item => {
    const [key, value] = item.split('=');
    if(key === paramName) {
      res.push(value);
    }
  })
  return res.length > 1 ? res : res[0];
}
console.log(getUrlParam(url, 'six'));